package ar.com.jsejtman.common.mail.service;

import ar.com.jsejtman.common.mail.entity.EmailServerConfiguration;
import ar.com.jsejtman.common.mail.exception.CannotSendEmailException;
import org.springframework.stereotype.Service;

/**
 * Interfaz del servicio de envío de Emails.
 * 
 * @author jsejtman
 */
@Service
public interface IEmailSenderService {

	/**
	 * Realiza el envío de un Email.
	 * 
	 * @param serverConfiguration Configuración del servidor de Email.
	 * @param toAddress Dirección destino.
	 * @param subject Asunto.
	 * @param body Cuerpo del Email.
	 * @throws CannotSendEmailException En caso de problemas al enviar el Email.
	 */
	void sendEmail(final EmailServerConfiguration serverConfiguration,
	        final String toAddress, final String subject, final String body)
	        throws CannotSendEmailException;
}
